package com.xyy.saas.payment.common.enums;

import org.apache.commons.lang.StringUtils;

public enum FBankErrorMsgMappingEnum {
    MAPPING_01("该商户侧ID已被他人使用", "开户频繁，请5分钟后重试"),
    MAPPING_02("企业工商信息有误", "企业工商信息有误，建议检查【营业执照号】是否正确"),
    MAPPING_03("法人联网核查失败", "法人联网核查失败，建议检查法人【姓名】【身份证号】是否正确"),
    MAPPING_04("身份证有效期间隔必须为5、10、20年参数校验失败", "身份证有效期间隔必须为5、10、20年，建议检查【法人】【股东】【受益人】身份证有效期是否正确"),
    MAPPING_05("批量图片上传接口返回失败", "疑似企业/法人征信异常，请联系运营人员进一步确认"),
    MAPPING_06("控制人1联网核查失败", "控制人联网核查失败，建议检查股东/受益人【姓名】【身份证号】是否正确"),
    MAPPING_07("认证失败,信息不匹配", "认证信息不匹配，建议检查开户人【姓名】【身份证号】【银行卡号】【预留手机号】是否正确"),
    MAPPING_08("卡BIN信息不存在", "结算卡号不存在，建议检查【银行卡号】是否正确"),
    MAPPING_09("认证失败，请检查认证信息是否正确，卡状态是否正常", "认证失败信息不匹配，建议检查开户人【姓名】【身份证号】【银行卡号】【预留手机号】是否正确"),
    MAPPING_10("受益人1联网核查失败", "受益人联网核查失败，建议检查受益人【姓名】【身份证号】是否正确"),
    ;

    private static String DEFAULT_ERROR_MSG = "操作异常，请联系运营人员";

    public static String convert(String fmErrorMsg) {
        if(StringUtils.isBlank(fmErrorMsg)) {
            return DEFAULT_ERROR_MSG;
        }

        for(FBankErrorMsgMappingEnum item : values()) {
            if(item.fmErrorMsg.contains(fmErrorMsg) || fmErrorMsg.contains(item.fmErrorMsg)) {
                return item.xyyErrorMsg;
            }
        }

        return fmErrorMsg;
    }

    FBankErrorMsgMappingEnum(String fmErrorMsg, String xyyErrorMsg) {
        this.fmErrorMsg = fmErrorMsg;
        this.xyyErrorMsg = xyyErrorMsg;
    }

    private String fmErrorMsg;
    private String xyyErrorMsg;

    public String getFmErrorMsg() {
        return fmErrorMsg;
    }

    public void setFmErrorMsg(String fmErrorMsg) {
        this.fmErrorMsg = fmErrorMsg;
    }

    public String getXyyErrorMsg() {
        return xyyErrorMsg;
    }

    public void setXyyErrorMsg(String xyyErrorMsg) {
        this.xyyErrorMsg = xyyErrorMsg;
    }
}
